Private API: the pstypes module

Quick access

Types:fft_metadata, ps_workarrays, psolver_energies, psolver_options
Variables:accel, alphas_key, atomic_radii, betav_key, cavitation, cavity_key, delta_key, dict_completed, edensmaxmin, environment_variables, epsilon_key, fact_rigid, fd_order, gammas_key, global_data, gps_algorithm, input_guess, isf_order, itermax, keep_gpu_memory, kernel_variables, minres, output, pb_eta, pb_input_guess, pb_itermax, pb_method, pb_minres, pi_eta, radii_bondi_id, radii_pauling_id, radii_set, radii_uff_id, screening, setup_variables, stress_tensor, taskgroup_size_key, use_gpu_direct, verbosity
Routines:build_cavity_from_rho(), create_rho_distribution(), fft_metadata_null(), free_fft_metadata(), free_ps_workarrays(), from_fft_grid(), grid_dump_layout(), new_f_grid(), new_p_grid(), new_s_grid(), new_w_grid(), nullify_work_arrays(), ps_input_dict(), psolver_energies_null(), psolver_options_null(), to_fft_grid()

Needed modules

  • f_enums
  • wrapper_mpi
  • psbase
  • psolver_environment (cavity_data, cavity_default())
  • dynamic_memory
  • f_input_file (attrs())
  • box
  • dictionaries
  • workarrays

Types

  • type pstypes/fft_metadata
    Type fields:
    • % counts (*) [integer, pointer]
    • % displs (*) [integer, pointer]
    • % iend [integer]
    • % istart [integer]
    • % m1 [integer]
    • % m2 [integer]
    • % m3 [integer]
    • % md1 [integer]
    • % md2 [integer]
    • % md3 [integer]
    • % n1 [integer]
    • % n2 [integer]
    • % n3 [integer]
    • % n3p [integer]
    • % nd1 [integer]
    • % nd2 [integer]
    • % nd3 [integer]
    • % scal [real]
  • type pstypes/ps_workarrays
    Type fields:
    • % zf (,,*) [real, pointer]
  • type pstypes/psolver_options
    Type fields:
    • % calculate_strten [logical]
    • % cavity_info [logical]
    • % datacode [character(len=1)]
    • % final_call [logical]
    • % keepgpumemory [logical]
    • % only_electrostatic [logical]
    • % potential_integral [real]
    • % update_cavity [logical]
    • % use_input_guess [logical]
    • % use_pb_input_guess [logical]
    • % verbosity_level [integer]
  • type pstypes/psolver_energies
    Type fields:
    • % cavitation [real]
    • % elec [real]
    • % evextra [real]
    • % hartree [real]
    • % strten (6) [real]

Variables

  • pstypes/accel [character(len=*),public/parameter/optional/default=’accel’]
  • pstypes/alphas_key [character(len=*),public/parameter/optional/default=’alphas’]
  • pstypes/atomic_radii [character(len=*),public/parameter/optional/default=’atomic_radii’]
  • pstypes/betav_key [character(len=*),public/parameter/optional/default=’betav’]
  • pstypes/cavitation [character(len=*),public/parameter/optional/default=’cavitation’]
  • pstypes/cavity_key [character(len=*),public/parameter/optional/default=’cavity’]
  • pstypes/delta_key [character(len=*),public/parameter/optional/default=’delta’]
  • pstypes/dict_completed [character(len=*),public/parameter/optional/default=’__dict_has_been_checked__’//attrs]
  • pstypes/edensmaxmin [character(len=*),public/parameter/optional/default=’edensmaxmin’]
  • pstypes/environment_variables [character(len=*),public/parameter/optional/default=’environment’]
  • pstypes/epsilon_key [character(len=*),public/parameter/optional/default=’epsilon’]
  • pstypes/fact_rigid [character(len=*),public/parameter/optional/default=’fact_rigid’]
  • pstypes/fd_order [character(len=*),public/parameter/optional/default=’fd_order’]
  • pstypes/gammas_key [character(len=*),public/parameter/optional/default=’gammas’]
  • pstypes/global_data [character(len=*),public/parameter/optional/default=’global_data’]
  • pstypes/gps_algorithm [character(len=*),public/parameter/optional/default=’gps_algorithm’]
  • pstypes/input_guess [character(len=*),public/parameter/optional/default=’input_guess’]
  • pstypes/isf_order [character(len=*),public/parameter/optional/default=’isf_order’]
  • pstypes/itermax [character(len=*),public/parameter/optional/default=’itermax’]
  • pstypes/keep_gpu_memory [character(len=*),public/parameter/optional/default=’keep_gpu_memory’]
  • pstypes/kernel_variables [character(len=*),public/parameter/optional/default=’kernel’]
  • pstypes/minres [character(len=*),public/parameter/optional/default=’minres’]
  • pstypes/output [character(len=*),public/parameter/optional/default=’output’]
  • pstypes/pb_eta [character(len=*),public/parameter/optional/default=’pb_eta’]
  • pstypes/pb_input_guess [character(len=*),public/parameter/optional/default=’pb_input_guess’]
  • pstypes/pb_itermax [character(len=*),public/parameter/optional/default=’pb_itermax’]
  • pstypes/pb_method [character(len=*),public/parameter/optional/default=’pb_method’]
  • pstypes/pb_minres [character(len=*),public/parameter/optional/default=’pb_minres’]
  • pstypes/pi_eta [character(len=*),public/parameter/optional/default=’pi_eta’]
  • pstypes/radii_bondi_id [integer,public/parameter/optional/default=2]
  • pstypes/radii_pauling_id [integer,public/parameter/optional/default=1]
  • pstypes/radii_set [character(len=*),public/parameter/optional/default=’radii_set’]
  • pstypes/radii_uff_id [integer,public/parameter/optional/default=3]
  • pstypes/screening [character(len=*),public/parameter/optional/default=’screening’]
  • pstypes/setup_variables [character(len=*),public/parameter/optional/default=’setup’]
  • pstypes/stress_tensor [character(len=*),public/parameter/optional/default=’stress_tensor’]
  • pstypes/taskgroup_size_key [character(len=*),public/parameter/optional/default=’taskgroup_size’]
  • pstypes/use_gpu_direct [character(len=*),public/parameter/optional/default=’use_gpu_direct’]
  • pstypes/verbosity [character(len=*),public/parameter/optional/default=’verbose’]

Subroutines and functions

function pstypes/psolver_energies_null()
Return:e [psolver_energies]
function pstypes/psolver_options_null()
Return:o [psolver_options]
function pstypes/fft_metadata_null()
Return:d [fft_metadata]
Called from:new_p_grid(), new_s_grid(), new_w_grid(), new_f_grid()
subroutine pstypes/grid_dump_layout(g, nproc, nlimd, nlimk)
Parameters:
  • g [fft_metadata, in]
  • nproc [integer, in]
  • nlimd [integer, in]
  • nlimk [integer, in]
Use :

yaml_output, yaml_strings

Called from:

pkernel_set()

subroutine pstypes/create_rho_distribution(g, iproc, nproc)
Parameters:
  • g [fft_metadata, inout]
  • iproc [integer, in]
  • nproc [integer, in]
Use :

dynamic_memory

Called from:

pkernel_set()

subroutine pstypes/nullify_work_arrays(w)
Parameters:w [ps_workarrays, out]
Use :f_utils (f_zero())
subroutine pstypes/free_ps_workarrays(w)
Parameters:w [ps_workarrays, inout]
Use :dynamic_memory
Called from:pkernel_free()
subroutine pstypes/free_fft_metadata(g)
Parameters:g [fft_metadata, inout]
Use :dynamic_memory
Called from:pkernel_free()
subroutine pstypes/ps_input_dict(dict[, dict_minimal])
Parameters:dict [dictionary, pointer]
Options:dict_minimal [dictionary, pointer]
Use :dictionaries, f_input_file, yaml_parse
Called from:pkernel_init()
subroutine pstypes/build_cavity_from_rho(method, rho, nabla2_rho, delta_rho, cc_rho, mesh, grid, diel, cavity, depsdrho, dsurfdrho)
Parameters:
  • method [f_enumerator, in]
  • rho (mesh%ndims(1,mesh%ndims(2)*grid%n3p) [real, in]
  • nabla2_rho (mesh%ndims(1,mesh%ndims(2)*grid%n3p) [real, in]
  • delta_rho (mesh%ndims(1,mesh%ndims(2)*grid%n3p) [real, in]
  • cc_rho (mesh%ndims(1,mesh%ndims(2)*grid%n3p) [real, in]
  • mesh [cell, in]
  • grid [fft_metadata, in] :: kernel%ndims(3)
  • diel [dielectric_arrays, inout]
  • cavity [cavity_data, in]
  • depsdrho (mesh%ndims(1,mesh%ndims(2)*grid%n3p) [real, out]
  • dsurfdrho (mesh%ndims(1,mesh%ndims(2)*grid%n3p) [real, out]
Use :

psolver_environment, workarrays

Called from:

rebuild_cavity_from_rho()

Call to:

dielectric_pcg_set_at(), eps(), oneoeps(), epsprime(), surf_term()

subroutine pstypes/new_p_grid(n01, n02, n03, grid, nproc, enlarge_md2)
Parameters:
  • n01 [integer, in]
  • n02 [integer, in]
  • n03 [integer, in] :: < original real dimensions (input)
  • grid [fft_metadata, out]
  • nproc [integer, in]
  • enlarge_md2 [logical, in]
Use :

dictionaries (f_err_throw()), yaml_strings

Called from:

pkernel_set()

Call to:

fft_metadata_null()

subroutine pstypes/new_s_grid(n01, n02, n03, grid, nproc, gpu, enlarge_md2[, non_ortho])
Parameters:
  • n01 [integer, in]
  • n02 [integer, in]
  • n03 [integer, in]
  • grid [fft_metadata, out] :: beware of the half dimension
  • nproc [integer, in]
  • gpu [integer, in]
  • enlarge_md2 [logical, in]
Options:

non_ortho [logical, in,]

Use :

dictionaries (f_err_throw()), yaml_strings

Called from:

pkernel_set()

Call to:

fft_metadata_null()

subroutine pstypes/new_w_grid(n01, n02, n03, grid, nproc, gpu, enlarge_md2)
Parameters:
  • n01 [integer, in]
  • n02 [integer, in]
  • n03 [integer, in]
  • grid [fft_metadata, out] :: beware of the half dimension
  • nproc [integer, in]
  • gpu [integer, in]
  • enlarge_md2 [logical, in]
Use :

dictionaries (f_err_throw()), yaml_strings

Called from:

pkernel_set()

Call to:

fft_metadata_null()

subroutine pstypes/new_f_grid(n01, n02, n03, grid, nproc, gpu, enlarge_md2)
Parameters:
  • n01 [integer, in]
  • n02 [integer, in]
  • n03 [integer, in] :: < Original real dimensions
  • grid [fft_metadata, out] :: beware of the half dimension
  • nproc [integer, in]
  • gpu [integer, in]
  • enlarge_md2 [logical, in]
Called from:

pkernel_set()

Call to:

fft_metadata_null()

subroutine pstypes/to_fft_grid(grid, zf, rho, nproc)
Parameters:
  • grid [fft_metadata, in]
  • zf (grid%md1,grid%md3*2*(grid%md2/nproc) [real, inout]
  • rho (grid%m1,grid%m3*grid%n3p) [real, in]
  • nproc [integer, in]
Called from:

apply_kernel()

subroutine pstypes/from_fft_grid(grid, rho, zf, nproc)
Parameters:
  • grid [fft_metadata, in]
  • rho (grid%m1,grid%m3*grid%n3p) [real, inout]
  • zf (grid%md1,grid%md3*2*(grid%md2/nproc) [real, in]
  • nproc [integer, in]
Called from:

apply_kernel()